<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>For each tsükkel.</title>
    </head>
    <body>
        <?php
            //foreach loop aitab meil massiividest edukalt (lühema kirjapildi
            //abil väärtusi väljastada. Vaatleme enne võrdlemiseks ka eelnevalt
            //läbi töötatud tsüklite tüüpe
            $array_ehk_massiiv = array(2, 3, 4, 6, 8, 10, 44, 57);

            echo 'VÄLJATRÜKK WHILE TSÜKLI ABIL <br/>';
            $massiiviElemendiIndeks = 0;
            while ($massiiviElemendiIndeks <= (count($array_ehk_massiiv)-1))
            {
                echo 'Massiivi indeksile ' . $massiiviElemendiIndeks . ' vastab massiivis
                    väärtus: ' . $array_ehk_massiiv[$massiiviElemendiIndeks];
                echo '<br/>';
                
                //Tähtis on tsükli tingimuse aluseks olevat väärtust iga tsükli 
                //järel suurendada. Muidu ei saaks tsükli tingimus iial täidetuks
                $massiiviElemendiIndeks += 1;
            }
            
            echo '<br/> VÄLJATRÜKK FOR TSÜKLI ABIL <br/>';

            for ($i = 0; $i <= count($array_ehk_massiiv)-1; $i++)
            {
                echo 'Massiivi indeksile ' . $i . ' vastab massiivis
                    väärtus: ' . $array_ehk_massiiv[$i];
                echo '<br/>';
            }
            
            /*
             * For each tsükkel ongi spetsialiseerunud massiivide jaoks. 
             * Süntaks:
             * foreach ($massiiv as $väärtus)
             * {
             *      Kood, mida käivitada;
             * }
             * 
             * Inglise keeles:
             * foreach ($array as $value)
             * {
             *      statement;
             * }
             * 
             * Tingimuslause sulgudes olev esimene väärtus nõuab massiivi nime,
             * mille peal tsükli operatsioonid läbi viia. Seejärel tuleb
             * kohustuslik operaatori nimi as. Pärast as-i tuleb defineerida
             * ajutine muutuja (nimi, mis muutujale panna, pole oluline. See võib
             * olla ükskõik milline muutujanimi, mida enne defineeritud pole)
             * Seesama, meie poolt, tingimuslauses defineeritud muutuja säilitab endas
             * igale tsüklile omast väärtust massiivis. 
             * S.t. kui tsükkel läheb
             * käima esimest korda, säilitab see muutuja endas massiivi esimest
             * väärtust (ehk väärtust, mis asub massiivis indeksile väärtusega 0
             * vastavas asukohas).
             * Teisel tsükli iteratsioonil saab see ise defineeritud muutuja hoidma
             * väärtust, mis asub massiivi teisel positsioonil (ehk väärtust, mis asub
             * massiivis indeksile 1 vastavas asukohas) jnejne kuni massiiv
             * tervenisti läbi saab käidud.
             */
            
            echo '<br/> VÄLJATRÜKK FOREACH TSÜKLI ABIL <br/>';
            
            $massiiviElemendiIndeksForEachTsyklile = 0;
            foreach ($array_ehk_massiiv as $elementMassiivist)
            {
                echo 'Massiivi indeksile ' . $massiiviElemendiIndeksForEachTsyklile . ' 
                    vastab massiivis väärtus: ' . $elementMassiivist;
                echo '<br/>';
                
                $massiiviElemendiIndeksForEachTsyklile += 1;
            }
            
            
            /*Mäletatavasti kasutasime ka massiivi, kus massiivi vaikimisi 
             * indeksite asemel defineerisime ise massiivis olevatele elementidele
             * indeksite väärtuse, ehk sildi (ehk label'i inglise keeles). 
             * Selle massiivi nimi oli inglise keele  associative array.
             */
            $massiivSiltidega = array('veearve' => 8.50, 'elektriarve' => 30.75, 
                 'mobiilse_interneti_arve' => 'Kohale jõudmata!');
            
            /*
             * Sellise massiivi väljatrükkimiseks foreach tsükli abil tuleb samuti
             * teada sellele vastavat eripärast süntaksit.
             */
            echo '<br/> VÄLJATRÜKK FOREACH TSÜKLI ABIL, KUI MASSIIVIS ON SILDID (labelid) <br/>';
            foreach ($massiivSiltidega as $silt => $v22rtus)
            {
                echo 'Massiivi sildile "' . $silt . '" vastab massiivis väärtus: "' 
                        . $v22rtus .'"';
                echo '<br/>';
            }
            
            /*
             * Säärast süntaksit kasutades oleks üleelmise näite puhul massiivi 
             * indekseid mugavamalt kuvada saanud:
             */
            echo '<br/> VÄLJATRÜKK FOREACH TSÜKLI ABIL, KASUTADES SILDI (label) OMADUSI <br/>';
            //Nii ei lähe järgneva muutuja kasutamist vaja
            //$massiiviElemendiIndeksForEachTsyklile2 = 0;
            foreach ($array_ehk_massiiv as $massiiviIndeks => $elementMassiivist)
            {
                echo 'Massiivi indeksile ' . $massiiviIndeks . ' 
                    vastab massiivis väärtus: ' . $elementMassiivist;
                echo '<br/>';
                
                //järgmist osa ei läheks nüüd vaja
                //$massiiviElemendiIndeksForEachTsyklile2 += 1;
            }
            
        ?>
    </body>
</html>
